//symbol在一些库中 常常作为对象key来使用
const s1 = Symbol('xxx');

const obj = {
  name: 'ahhh',
  age: 123,
  [s1]: 'ok'
}

for (const key in obj) { //Symbol属性是不会被枚举的
  console.log(obj[key]);
  /*
    ahhh
    123
  */
  //发现不会遍历Symbol的key
}


//获取所有symbol
console.log(Object.getOwnPropertySymbols(obj))
/*
[ Symbol(xxx) ]
*/

//获取所有普通类型的key
console.log(Object.keys(obj));
/*
[ 'name', 'age' ]
*/


//获取所有(symbol+普通类型的key)
Reflect.ownKeys(obj).forEach(item=>{
  console.log(item)
})
/*
name
age
Symbol(xxx)
*/
